# !-*- coding: utf-8 -*-


# ---------------------- 3元表达式----------------
# 比较大小，获取大的值
def getMax(a, b):
    # if a > b:
    #     return a
    # else:
    #     return b
    return a if a > b else b


# 常规写法
# print(getMax(3, 4))

# 三元表达式
# print(getMax(3, 2))

# ---------------------- 列表----------------
# a = list('123456')
# print(a)

# 列表
# a = [1, 2, 3, 4]
# b = a
# a.append(5)
# print(a, b)  # 修改了a的值，b也会变，所以 列表是引用传值


# 给列表添加值
def appendList(a, v):
    return a.append(v)


# 修改了a的值，b值变化
# a = [1, 2, 3, 4]
# b = a # 列表直接赋值给别的列表，类似于php中的引用传值
# appendList(a, 5)
# print(b)

# 修改了a的值，b值不变化
# a = [3, 2, 1, 4, 5]
# b = a[:]  # 完全拷贝a的值赋给b，b和a完全无关
# appendList(a, 5)
# print(b)

# 删除元素
# del a[0]

# 添加多个元素：会修改原值
# a.extend(b)
# 添加多个元素：不会修改原值
# print(a + b, a)

# a.remove(4) # remove，移除元素,只移除1个
# del a[4] # 根据索引删除列表元素

# a.reverse()  # 翻转列表元素

# sort：列表排序，会改变列表的值
# a.sort()  # 改变a的值，为排序后的值
# print(sorted(a))  # sorted排序，得到一个副本，不会改变原来的数据

# print(a)

# ========================================================================================

# 1、定义list
a = []
a1 = list()
print(a, a1)

# 1-1、给list添加元素：append
a.append(1)
a.append("b")
print(a)

# 1.2、在list的制定位置插入元素：.insert
a.insert(0, 0)
print(a)
a.insert(0, 3)
print(a)

# 1.3、在一个列表后追加一个list：extend，参数必须是一个可迭代的
a.extend([5, 6, 7])
print(a)


# 2、通过下标索引访问列表元素，当索引为负数时，表示从最后开始往前取值
print(a[0])
print(a[len(a) - 1])
print(a[-1])

# 3、更新列表的元素，通过下标直接赋值即可
a[1] = 1
print(a)

# 4、获取子列表，通过切片
print(a[1:3])

# 5、遍历切片：for v in list
for i in a:
    print(i)

# 6-1、从list中删除元素：del，删除制定位置的元素或者整个list
del (a[0])
print(a)
# 6-2、删除制定位置的元素并返回该元素
print(a.pop(a[0]))
print(a)
# 6-3、删除制定值：remove
a.remove(7)
print(a)
